package com.ruoyi.reserve.service.impl;

import com.ruoyi.reserve.domain.CheckGroup;
import com.ruoyi.reserve.domain.CheckgroupCheckitem;
import com.ruoyi.reserve.domain.Checkitem;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ICheckGroupService {

    public List<CheckGroup> getList(CheckGroup checkGroup);

    /**
     * 批量删除检查组信息
     *
     * @param groupId 需要删除的检查组ID
     * @return 结果
     */
    public int deleteGroupByIds(Integer[] groupId);

    /**
     * 新增保存检查组信息
     *
     * @param checkGroup 检查组信息
     * @return 结果
     */
    public int insertGroup(CheckGroup checkGroup);

    /**
     * 根据id获取该条检查组的详情
     */
    public CheckGroup getInfo(Integer id);

    /**
     * 更新检查组信息
     *
     * @param checkGroup 检查组信息
     * @return 结果
     */
    public int updateGroup(CheckGroup checkGroup);

    /**
     * 新增时 根据编号查询检查组是否存在
     */
    public CheckGroup getInfoByCode(String code);

    /**
     * 新增时 根据名称查询检查组是否存在
     */
    public CheckGroup getInfoByName(String name);


    /**
     * 删除检查组中的检查项
     */
    public int deleteGroupByItemsByIds(@Param("groupId") Integer groupId, @Param("checkgroupCheckitems") List<CheckgroupCheckitem> checkgroupCheckitems);

    /**
     * 查询可以被该检查组添加的检查项(刨除该检查组所拥有的检查项)
     * @param checkGroup 检查组对象,用来获取其中的检查组id
     * @return 返回的是可以被添加的检查项数组
     */
    List<Checkitem> getInfoByCheckGroup (CheckGroup checkGroup);

    /**
     * 新增指定检查组中的检查项
     */
    public int addCheckGroupItems(@Param("checkgroupCheckitems") List<CheckgroupCheckitem> checkgroupCheckitems);


}
